/* DigitHash.h
 * 
 *  Author          : Alexander J. Yee
 *  Date Created    : 01/14/2018
 *  Last Modified   : 01/14/2018
 * 
 */

////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//  Dependencies
#include "PublicLibs/Types.h"
#include "PublicLibs/SystemLibs/ProcessorCapability/ProcessorCapability.h"
#include "DigitHash.h"
////////////////////////////////////////////////////////////////////////////////
#if 0
#elif defined YMP_Arch_2017_x64_Skylake
#include "Kernels/DigitHash_x64_AVX512-BW.ipp"
#elif defined YMP_Arch_2013_x64_Haswell
#include "Kernels/DigitHash_x64_AVX2.ipp"
#elif YMP_PTR_MAG >= 6
#include "Kernels/DigitHash_LittleEndian64.ipp"
#else
#include "Kernels/DigitHash_LittleEndian32.ipp"
#endif
////////////////////////////////////////////////////////////////////////////////
namespace DigitViewer2{
namespace DigitHash{
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//  Template Instantiations
template hash_t accumulate<10>(hash_t hash_in, const char* raw_digits, upL_t digits);
template hash_t accumulate<16>(hash_t hash_in, const char* raw_digits, upL_t digits);
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
}
}
